Language conversion and display

ABSTRACT

A language input architecture receives input text (e.g., phonetic text of a character-based language) entered by a user from an input device (e.g., keyboard, voice recognition). The input text is converted to an output text (e.g., written language text of a character-based language). The language input architecture has a user interface that displays the output text and unconverted input text in line with one another. As the input text is converted, it is replaced in the UI with the converted output text. In addition to this in-line input feature, the UI enables in-place editing or error correction without requiring the user to switch modes from an entry mode to an edit mode. To assist with this in-place editing, the UI presents pop-up windows containing the phonetic text from which the output text was converted as well as first and second candidate lists that contain small and large sets of alternative candidates that might be used to replace the current output text. The language input user interface also allows a user to enter a mixed text of different languages.

RELATED CASES

This is a divisional of U.S. patent application Ser. No. 09/606,811,entitled “Language Input User Interface”, which was filed Jun. 28, 2000,and is assigned to Microsoft Corporation.

This divisional claims benefit of U.S. Provisional Application No.60/163,588, filed Nov. 5, 1999.

This divisional is also co-pending with U.S. patent application Ser. No.09/606,660, filed on Jun. 28, 2000, entitled “Language InputArchitecture For Converting One Text Form to Another Text Form WithTolerance To Spelling, Typographical, And Conversion Errors” and U.S.patent application Ser. No. 09/606,807, filed on Jun. 28, 2000, entitled“Language Input Architecture For Converting One Text Form to AnotherText Form With Modeless Entry”. Both of these co-pending applicationsare incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a language input user interface. Moreparticularly, the present invention relates to a language input userinterface that may be used in language-specific or multilingual wordprocessing systems, email systems, browsers, and the like, wherephonetic text is input and converted to language text.

BACKGROUND

Language-specific word processing systems that utilize alphanumerickeyboards (e.g. the English QWERTY keyboard) have existed for manyyears. Alphanumeric keyboards work well for languages that employ asmall alphabet, such as the Roman character set. Unfortunately, not alllanguages have a small character base. For instance, character-basedlanguages (also referred to as symbol languages), such as Chinese,Japanese, Korean, and the like, may have thousands of characters.Language specific keyboards do not exist for character-based languagesbecause it is practically impossible to build a keyboard to supportseparate keys for so many different characters.

Rather than designing expensive language and dialect-specific keyboards,language-specific word processing systems allow the user to enterphonetic text from a small character-set keyboard (e.g., a QWERTYkeyboard) and convert that phonetic text to language text of acharacter-based language. “Phonetic text” represents the sounds madewhen speaking a given language, whereas the “language text” representsthe actual written characters as they appear in the text. In the Chineselanguage, for example, Pinyin is an example of phonetic text and Hanziis an example of the language text. Typically, the set of charactersneeded to express the phonetic text is much smaller than the characterset used to express the language text. By converting the phonetic textto language text, many different languages can be processed by thelanguage specific word processor using conventional computers andstandard QWERTY keyboards.

To facilitate user entry of phonetic text, language-specific wordprocessing systems often employ a language input user interface (UI).Existing language input UIs, however, are not very user friendly becausethey are not easy to learn and they do not accommodate a fast typingspeed. As an example of such unfriendliness, some conventional languageinput user interfaces disassociate the phonetic text input from theconverted language text output. For instance, a user may enter phonetictext in one location on the visual display screen and the convertedcharacters of the language text are presented in a separate and distinctlocation on the screen. The two locations may even have their own localcursor. This dual presentation can be confusing to the user in terms ofwhere entry is actually taking place. Moreover, the user mustcontinuously glance between the locations on the screen.

As a result, existing language input UIs are often only used byprofessional typists, not by everyday personal computer (PC) users. Incharacter-based language countries, these concerns have a significantaffect on the popularity of PC use.

In general, there are two types of language input user interfaces: (1) acode-based user interface and (2) a mode-based user interface. In acode-based user interface, users memorize codes related to words of thelanguage. The codes are input by way of an input device and converted tothe desired language text. This type of user interface allows users toinput text very fast once they have memorized the codes. However, thesecodes are often not easy to memorize, but are easy to forget.

In a mode-based user interface, phonetic text is input and converted tothe desired language text. Mode-based user interfaces do not requireusers to memorize codes, but typically require users to switch modesbetween inputting and editing language text. One example of a mode-baseduser interface is employed in Microsoft's “Word”-brand word processingprogram that is adapted for foreign languages by utilizingphonetic-to-language conversion, such as Chinese. When entering phonetictext in the “Word” program, a user is presented with a localized toolbar that enables the user to switch between an inputting mode in which auser inputs phonetic characters (e.g., Chinese Pinyin) and an editingmode in which a user corrects inevitable errors that occasionally occuras a result of the recognition and conversion process.

One drawback with such traditional interfaces is that users must beaware of the current mode—input or edit—and take additional steps thatare extraneous to text entry (i.e., clicking a tool bar control button)to switch between the modes. This interface thus causes extra work forthe user and diverts the user's attention from text entry to othersperipheral control aspects, thereby significantly reducing input speed.

Another problem associated with mode-based user interfaces concerns howto handle, from a user interface perspective, the inevitable conversionerrors. A conversion error occurs when the recognition and conversionengine converts the phonetic text into an incorrect language character.This may be quite common due to the nature of a given language and theaccuracy at which the phonetic text can be used to predict an intendedcharacter. After the user converts to the editing mode, the userinterface typically provides some way for the user to correct thecharacter. In Microsoft's “Word”-brand word processing program forChina, for example, a user is presented with a box containing possiblealternative characters. If the list is long, the box provides controlsto scroll through the list of possible characters.

Another drawback of traditional mode-based user interfaces is that theyrequire mode switching for inputting different languages. When a user isinputting phonetic text and wants to input text of a second language,the user has to switch modes to input the second language. For instance,in the context of Microsoft “Word”, the localized tool bar offers acontrol button that enables a user to toggle between entry of a firstlanguage (e.g., Chinese Pinyin) and entry of a second language (e.g.,English). The user must consciously activate the control to inform theword recognition engine of the intended language.

Another concern related to a language input UI, particularly from theperspective of non-professional typists, is typing errors. The averageuser of phonetic text input UIs is particularly prone to enteringtypographic typing errors. One reason for the typing errors is thatusers from different geographic regions often use different dialects ofa character-based language. Users misspell phonetic text due to theirlocal dialects. A slight deviation in phonetic text can result inentirely different character text.

Accordingly, there is a need for an improved language input userinterface.

SUMMARY

The present invention concerns a language input user interface thatintelligently integrates phonetic text entered by a user and languagetext converted from the phonetic text into the same screen area. Theuser interface is modeless in that it does not require a user to switchbetween input and edit modes. The modeless user interface alsoaccommodates entry of multiple languages without requiring explicit modeswitching among the languages. As a result, the user interface isintuitive for users, easy to learn, and is user friendly.

In one implementation, the language input user interface (UI) includesan in-line input feature that integrates phonetic text with convertedlanguage text. In particular, the phonetic text being input by a user isdisplayed in the same line concurrently with previously entered phonetictext and previously converted language text. Displaying input phonetictext in the same line with the previously converted language text allowsusers to focus their eyes in the same line, thereby making for a moreintuitive and natural user interface.

The language input UI supports language text editing operationsincluding: 1) adding language text; 2) deleting language text; and 3)replacing selected language text with one or more replacement languagetext candidates. The user interface allows a user to select languagetext and replace it by manually typing in new phonetic text that canthen be converted to new language text. Alternatively, the userinterface provides one or more lists of language text candidates. Afloating list is first presented in conjunction with the selectedlanguage text to be changed. In this manner, language text candidatesare presented in-place within the sentence structure to allow the userto visualize the corrections in the grammatical context. The list ofcandidates is presented in a sorted order according to a rank or scoreof the likelihood that the choice is actually the one originallyintended by the user. The hierarchy may be based on probability,character strokes, or other metrics. The top candidate is the one thatgives the sentence the highest score, followed by the second candidatethat gives the sentence the next highest score, and so on.

As the user scrolls through the list, the list is updated within thecontext menu. Additionally, the currently visual choices are shown inanimated movement in the direction of the scrolling action. Theanimation helps the user ascertain how much or how fast the list isbeing scrolled. Once the user selects the replacement text, it isinserted in place of the language text within the sentence, allowing theuser to focus on a single line being edited.

Another feature of the language input UI is that it allows the user toview previously input phonetic text for the language text being edited.The user can select the previously input phonetic text and uponselection, the previously input phonetic text is displayed in place ofthe language text. The phonetic text can then be edited and converted tonew language text.

Another feature of the language input user interface is a sentence-basedautomatic conversion feature. In a sentence-based automatic conversion,previously converted language text within a sentence may be furtherconverted automatically to different language text after inputtingsubsequent phonetic text. Once a sentence is complete, as indicated by aperiod, the language text in that sentence becomes fixed and is notfurther converted automatically to different language text as a resultof entering input text in a subsequent sentence. It is appreciated thata phrase-based or similar automatic conversion can be used in analternative embodiment.

Another feature of the language input user interface is sentence-basedautomatic conversion with language text confirmation. After phonetictext is converted to language text, a user can confirm the justconverted language text so that the just converted language text willnot be further converted automatically in view of the context of thesentence.

Another feature of the language input user interface is the ability tohandle multiple languages without switching modes. Words or symbols of asecond language, when intermixed with the phonetic text, are treated asspecial language input text and displayed as the second language text.Thus, users are not required to switch modes when inputting differentlanguages.

These and various other features as well as advantages whichcharacterize the present invention will be apparent from reading thefollowing detailed description and a review of the associated drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the Figures to reference likecomponents and features.

FIG. 1 is a block diagram of a computer system having alanguage-specific word processor that implements a language inputarchitecture. The language input architecture includes a language inputuser interface (UI).

FIG. 2 is a diagrammatic illustration of a screen display of oneimplementation of a language input user interface. FIG. 2 illustrates anin-line input feature of the language input UI.

FIG. 3 is a diagrammatic illustration of a screen display of thelanguage input UI, which shows an automatic conversion feature.

FIG. 4 is a diagrammatic illustration of a screen display of thelanguage input UI, which shows a sentence-based automatic conversionfeature.

FIG. 5 is a diagrammatic illustration of a screen display of thelanguage input UI, which shows an in-place error correction feature anda phonetic text hint feature.

FIG. 6 is a diagrammatic illustration of a screen display of thelanguage input UI, which shows a second candidate list feature.

FIG. 7 is a diagrammatic illustration of a screen display of thelanguage input UI, which shows an in-place phonetic text correctionfeature.

FIG. 8 is a diagrammatic illustration of a screen display of thelanguage UI, which shows a subsequent screen of the in-place phonetictext correction of FIG. 7.

FIG. 9 is a diagrammatic illustration of a screen display of thelanguage UI, which shows a subsequent screen of the in-place phonetictext correction of FIGS. 7 and 8.

FIG. 10 is a diagrammatic illustration of a screen display of thelanguage UI, which shows entry of mixed text containing multipledifferent languages.

FIG. 11 is a flow diagram of a method for inputting text using alanguage input user interface.

FIG. 12 is a flow diagram of an in-line input sub-process.

FIG. 13 is a flow diagram of an automatic conversion sub-process.

FIG. 14 is a flow diagram of an automatic conversion sub-process withconfirmed character text.

FIG. 15 is a flow diagram of an in-place error correction sub-process.

FIG. 16 is a flow diagram of an in-place error correction sub-processwith a second candidate list.

FIG. 17 is a flow diagram of a phonetic text hint sub-process.

FIG. 18 is a flow diagram of an in-place phonetic text correctionsub-process.

FIG. 19 is a flow diagram of an in-line inputting mixed language textsub-process.

FIG. 20 illustrates exemplary user inputs and a resulting screen shotsof an exemplary Chinese input user interface, which shows an example ofan in-line input feature.

FIG. 21 illustrates an exemplary screen display of an exemplary Chineseinput user interface, which shows an example of a Pinyin text hintfeature.

FIG. 22 illustrates exemplary user inputs and resulting screen shots ofan exemplary Chinese input user interface, which shows an example of anin-place error correction feature.

FIG. 23 illustrates exemplary user inputs and resulting screen shots ofan exemplary Chinese input user interface, which shows an example of anin-place Pinyin text correction feature.

FIG. 24 illustrates exemplary user inputs and resulting screen shots ofan exemplary Chinese input user interface, which shows an example of amixture input of English/Chinese language feature.

FIG. 25 illustrates exemplary user inputs and resulting screen shots ofan exemplary Chinese input user interface, which shows an example of asecond candidate list feature.

FIG. 26 illustrates exemplary user inputs and resulting screen shots ofan exemplary Chinese input user interface, which shows an example of asentence-based automatic conversion with a character confirmationfeature.

FIG. 27 illustrates a definition of phonetic text (e.g. Chinese Pinyintext) and its corresponding character text (e.g. Chinese charactertext), and a definition of non-phonetic text (e.g. alphanumeric text).

DETAILED DESCRIPTION

The present invention concerns a language input user interface thatfacilitates phonetic text input and conversion to language text. Fordiscussion purposes, the invention is described in the general contextof word processing programs executed by a general-purpose computer.However, the invention may be implemented in many different environmentsother than word processing (e.g., email systems, browsers, etc.) and maybe practiced on many diverse types of devices.

System Architecture

FIG. 1 shows an exemplary computer system 100 having a centralprocessing unit (CPU) 102, a memory 104, and an input/output (I/O)interface 106. The CPU 102 communicates with the memory 104 and I/Ointerface 106. The memory 104 is representative of both volatile memory(e.g., RAM) and non-volatile memory (e.g., ROM, hard disk, etc.).

The computer system 100 has one or more peripheral devices connected viathe I/O interface 106. Exemplary peripheral devices include a mouse 110,a keyboard 112 (e.g., an alphanumeric QWERTY keyboard, a phonetickeyboard, etc.), a display monitor 114, a printer 116, a peripheralstorage device 118, and a microphone 120. The computer system may beimplemented, for example, as a general-purpose computer. Accordingly,the computer system 100 implements a computer operating system (notshown) that is stored in memory 104 and executed on the CPU 102. Theoperating system is preferably a multi-tasking operating system thatsupports a windowing environment. An example of a suitable operatingsystem is a Windows brand operating system from Microsoft Corporation.

It is noted that other computer system configurations may be used, suchas hand-held devices, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. In addition, although a standalone computer isillustrated in FIG. 1, the language input UI may be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network(e.g., LAN, Internet, etc.). In a distributed computing environment,program modules may be located in both local and remote memory storagedevices.

A data or word processing program 130 is stored in memory 104 andexecutes on CPU 102. Other programs, data, files, and such may also bestored in memory 104, but are not shown for ease of discussion. The wordprocessing program 130 is configured to receive phonetic text andconvert it automatically to language text. More particularly, the wordprocessing program 130 implements a language input architecture 131that, for discussion purposes, is implemented as computer softwarestored in memory and executable on a processor. The word processingprogram 130 may include other components in addition to the architecture131, but such components are considered standard to word processingprograms and will not be shown or described in detail.

The language input architecture 131 of word processing program 130 has auser interface (UI) 132, a search engine 134, a language model 136, anda typing model 137. The architecture 131 is language independent. The UI132 and search engine 134 are generic and can be used for any language.The architecture 131 is adapted to a particular language by changing thelanguage model 136 and the typing model 137. A more detailed discussionof the architecture is found in co-pending applications Ser. No.09/606,660, entitled “Language Input Architecture For Converting OneText Form to Another Text Form With Tolerance To Spelling,Typographical, And Conversion Errors” and Ser. No. 09/606,807, entitled“Language Input Architecture For Converting One Text Form to AnotherText Form With Modeless Entry”, which are incorporated herein byreference.

The search engine 134, language module 136, and typing model 137together form a phonetic text-to-language text converter 138. Forpurposes of this disclosure, “text” means one or more characters and/ornon-character symbols. “Phonetic text” generally refers to analphanumeric text representing sounds made when speaking a givenlanguage. A “language text” is the characters and non-character symbolsrepresentative of a written language. “Non-phonetic text” isalphanumeric text that does not represent sounds made when speaking agiven language. Non-phonetic text might include punctuation, specialsymbols, and alphanumeric text representative of a written languageother than the language text.

FIG. 27 shows an example of phonetic text, converted language text, andnon-phonetic text. In this example, the phonetic text is Chinese Pinyintext, which is translated to “hello”. The exemplary character text isChinese Hanzi text, which is also translated to “hello”. The exemplarynon-phonetic text is a string of alphanumeric symbol text “@3m”. Fordiscussion purposes, word processor 130 is described in the context of aChinese-based word processor and the language input architecture 131 isconfigured to convert Pinyin to Hanzi. That is, the phonetic text isPinyin and the language text is Hanzi.

However, the language input architecture is language independent and maybe used for other languages. For example, the phonetic text may be aform of spoken Japanese, whereas the language text is representative ofa Japanese written language, such as Kanji. Many other examples existincluding, but not limited to, Arabic languages, Korean language, Indianlanguage, other Asian languages, and so forth.

Perhaps more generally stated, phonetic text may be any alphanumerictext represented in a Roman-based character set (e.g., English alphabet)that represents sounds made when speaking a given language that, whenwritten, does not employ the Roman-based character set. Language text isthe written symbols corresponding to the given language.

Phonetic text is entered via one or more of the peripheral inputdevices, such as the mouse 110, keyboard 112, or microphone 120. In thismanner, a user is permitted to input phonetic text using keyed entry ororal speech. In the case of oral input, the computer system may furtherimplement a speech recognition module (not shown) to receive the spokenwords and convert them to phonetic text. The following discussionassumes that entry of text via keyboard 112 is performed on a full size,standard alphanumeric QWERTY keyboard.

The UI 132 displays the phonetic text as it is being entered. The UI ispreferably a graphical user interface. The user interface 132 passes thephonetic text (P) to the search engine 134, which in turn passes thephonetic text to the typing model 137. The typing model 137 generatesvarious typing candidates (TC₁, . . . , TC_(N)) that might be suitableedits of the phonetic text intended by the user, given that the phonetictext may include errors. The typing model 137 returns the typingcandidates to the search engine 13, which passes them onto the languagemodel 136. The language model 136 generates various conversioncandidates (CC₁, . . . , CC_(N)) written in the language text that mightbe representative of a converted form of the phonetic text intended bythe user. The conversion candidates are associated with the typingcandidates. Conversion from phonetic text to language text is not aone-for-one conversion. The same or similar phonetic text mightrepresent a number of characters or symbols in the language text. Thus,the context of the phonetic text is interpreted before conversion tolanguage text. On the other hand, conversion of non-phonetic text willtypically be a direct one-to-one conversion wherein the alphanumerictext displayed is the same as the alphanumeric input.

The conversion candidates (CC₁, . . . , CC_(N)) are passed back to thesearch engine 134, which performs statistical analysis to determinewhich of the typing and conversion candidates exhibit the highestprobability of being intended by the user. Once the probabilities arecomputed, the search engine 134 selects the candidate with the highestprobability and returns the language text of the conversion candidate tothe UI 132. The UI 132 then replaces the phonetic text with the languagetext of the conversion candidate in the same line of the display.Meanwhile, newly entered phonetic text continues to be displayed in theline ahead of the newly inserted language text.

If the user wishes to change language text from the one selected by thesearch engine 134, the user interface 132 presents a first list of otherhigh probability candidates ranked in order of the likelihood that thechoice is actually the intended answer. If the user is stilldissatisfied with the possible candidates, the UI 132 presents a secondlist that offers all possible choices. The second list may be ranked interms of probability or other metric (e.g., stroke count or complexityin Chinese characters).

Language Input User Interface

The remaining discussion is particularly directed to features of theuser interface 132. In particular, the user interface 132 visuallyintegrates the display of inputted phonetic text along with convertedlanguage text in the same line on the screen. Many of the features aredescribed in the context of how they visually appear on a displayscreen, such as presence and location of a window or a menu or a cursor.It is noted that such features are supported by the user interface 132alone or in conjunction with an operating system.

FIGS. 2-10 illustrate various screen displays of one exemplaryimplementation of the language input user interface 132. Symbol “P” isused throughout FIGS. 2-10 to represent phonetic text that has beeninput and displayed in the UI, but has not yet been converted intolanguage text. Symbol “C” represents converted language text that hasbeen converted from input phonetic text P. Subscripts are used with eachof the phonetic text P, for example, P₁, P₂, . . . P_(N), and theconverted language text C, for example, C₁, C₂, C_(N), to representindividual ones of the phonetic and converted language text.

Integrated In-Line Text Input/Output

FIG. 2 shows a screen display 200 presented by the language input UI 132alone, or in conjunction with an operating system. In this illustration,the screen display 200 resembles a customary graphical window, such asthose generated by Microsoft's Windows brand operating system. Thegraphical window is adapted for use in the context of language input,and presents an in-line input area 202 in which phonetic text is enteredand subsequently converted to language text. The in-line area 202 isrepresented pictorially by the parallel dashed lines.

An input cursor 204 marks the present position where the next phonetictext input will occur. The graphical UI may further include a pluralityof tool bars, such as tool bars 206, 208, 210, 212, or other functionalfeatures depending on the application, e.g., word processor, dataprocessor, spread sheet, internet browser, email, operating system, etc.Tool bars are generally known in the word or data processing art andwill not be described in detail.

The in-line input area 202 integrates input of phonetic text P andoutput of the converted language text C. This advantageously allows theuser to focus attention on a single area of the screen. As the userenters phonetic text (via key entry or voice), the phonetic text P ispresented in-line in a first direction (e.g., horizontal across thescreen). The input cursor 204 is positioned by or in alignment with theconverted language text C₁C₂ and the input phonetic text P₁P₂P₃. In FIG.2, the input sequence is from left to right and the input cursor 204 ispositioned at the right side of the previously input phonetic textP₁P₂P₃. It will be appreciated that it is within the scope of thepresent invention to input text in the same direction in which a givenlanguage is read, and that the “left to right” input sequence discussedin the present implementation is merely one example. Further, it will beappreciated that the language input UI is capable of in-line input invirtually any direction including, but not limited to, vertically,diagonally, etc. Other in-line formats are conceivable including variousthree dimensional formats wherein the in-line input feature might appearto the user to extend away or toward the user.

Automatic Conversion

As the user inputs phonetic text P, the converter 138 automaticallyconverts the phonetic text to converted language text C. Typically, afew of the phonetic text elements P (e.g., one to six phonetic textelements P) is entered before the phonetic text P is converted tolanguage text C.

As conversion is made, the converted language text C is presented in thesame line as the phonetic text P, as indicated by the in-line area 202.As the user continues to enter phonetic text, the most recently inputphonetic text P is displayed in-line with the previously convertedlanguage text C. In FIG. 2, for example, phonetic text P₁P₂P₃ isdisplayed in-line with the most recently converted language text C₁C₂.Displaying input phonetic text P in the same line with previouslyconverted language text C allows users to focus their eyes in the sameline, thereby making the input process more intuitive and natural, aswell as allowing faster input.

As the user continues to enter phonetic text P, the user interfaceautomatically converts the phonetic text P in real time to language textC without the user having to switch modes. As shown in the example ofFIG. 3, as soon as the user enters phonetic text P₄, the previousphonetic text P₁P₂P₃ is automatically converted to language text C₃. Theuser continues inputting phonetic text P₄P₅P₆P₇ without having to switchmodes or hesitating.

Conversion from phonetic text to language text is an automatic processcontrolled by the language model 136. The language text C₃ is selectedas having the highest probability among all possible language text andso is used in the automatic conversion. However, the more a user types,the greater the context considered. Accordingly, language text C₃ mightbe changed to different language text upon further entry of phonetictext such as P₄P₅P₆P₇.

The language input architecture 131 may be configured to minimize howoften the converted language text is changed in response to entry ofadditional input text. In some contexts, it is possible that theconverted language text could change with each entered character ofinput text, essentially flipping among two or more possibleinterpretations that have approximately equal likelihood of beingintended by the user in the given context. The constant flipping oflanguage text might become visually distracting to the user.

To minimize textual flipping, the converter 138 may implement one ormore probabilistic-based rules that stipulate maintaining the currentlanguage text unless there is a significant likelihood that anothercontext is intended. In this way, the converter 138 is reluctant tochange the converted language text to a second language text when thesecond language text is only slightly better from a statisticalstandpoint. The degree of significance varies with the context. As anexample, the converter 138 may be configured to modify the language textonly when the modified language text is at least five percentage pointsmore likely than the language text it is replacing.

Sentence-Based and Confirmed Automatic Conversion

Users may not feel comfortable if a very long string of text (e.g., aparagraph of text) is subject to conversion. In one implementation ofthe user interface, the automatic conversion from phonetic text P tolanguage text C is a sentence-based automatic conversion. In otherwords, once a sentence is complete, the language text C in that sentencewill not be further converted automatically to different language text Cwhen inputting phonetic text P in a subsequent sentence. Thesentence-based automatic conversion feature significantly reduces users'typing errors as well as preventing a previous sentence from beingcontinuously converted automatically.

It is appreciated that a sentence can be defined in many other ways. Forexample, a sentence can be defined as a string of text within certainpredefined punctuation, such as a string of text between two periods, astring of text between various predefined punctuation, a string of textcontaining certain text elements, and so forth. Once a user enterspunctuation, the string of text entered between the punctuation and aprevious punctuation, if any, may be treated as a sentence. The stringof converted language text C in that sentence is not furtherautomatically converted as the user inputs phonetic text in subsequentsentences. A person skilled in the art will appreciate that theautomatic conversion can be based on two or more sentences if desired.

FIG. 4 illustrates the screen display 200 at a point in which a sentenceis confirmed by way of punctuation. Entry of punctuation, in addition toconfirming 11 a sentence, will typically result in the phonetic text Pat the end of the sentence being automatically converted to languagetext C. For example as shown in FIG. 4, once a comma 400 is entered,phonetic text P₄P₅P₆P₇ is converted to language text C₄. The string oflanguage text C₁C₂C₃C₄ is now treated as a sentence. Converted languagetext C₁C₂C₃C₄ will no longer be automatically further converted.

In addition to sentence-based automatic conversion, a user can expresslyconfirm one or more of the converted language text C following itsconversion from entered phonetic text P. A user can confirm the justconverted language text C by entry of a user command at the keyboard(e.g., a space bar entry) so that the just converted language text Cwill not be further automatically converted in view of the context ofthe sentence. A detailed example of this feature is discussed later withreference to FIGS. 20 and 24.

Deferred Conversion

In many languages, users are typically more accustomed to reading andcorrecting language text than phonetic text. As phonetic text isentered, the user commonly waits for conversion before attempting todiscern whether the entered text is accurate. This is particularly truefor the Chinese user, who prefers reading and correcting Chinese Hanzicharacters as opposed to Pinyin characters.

In view of this user characteristic, the language input architecture 131is designed to contemplate when to convert the phonetic text to thelanguage text. Generally, conversion is made when the converter issufficiently confident that the converted language text was intended bythe user. Characterized in the UI context, the issue becomes how manycharacters of the phonetic text should be displayed at any one time suchthat eventual conversion results in highly likely language text that isunlikely to be modified as the user enters in more phonetic text.Converting too soon results in more errors in the converted languagetext, is thereby forcing the user to correct the converted language textmore often. Converting too late creates a distraction in that the useris presented with long strings of phonetic text rather than the desiredlanguage text.

As a compromise between converting too early and converting too late,the language input architecture may be configured to defer conversionuntil an optimum number of phonetic characters are entered to ensure ahigh conversion accuracy. In practice, the architecture is designed todefer selecting and displaying converted language text in place of thephonetic text until after entry of a minimum number of characters andbefore entry of a maximum number of characters. As one example, alanguage input architecture tailored for Chinese might be configured toconvert Pinyin text to Hanzi text when at least one Pinyin character andat most six Pinyin characters have been entered and displayed in the UI.

According to one implementation, the language input architectureimplements a set of rules to determine, for a given context, the optimumnumber of phonetic characters that may be entered prior to selecting anddisplaying the converted language text. The rules may be summarized asfollows:

Rule 1: Always display the last (i.e., most recently entered) inputcharacter.

Rule 2: After entry and display of multiple input characters, evaluatetop N conversion candidates for one or more characters in the candidatesthat may match. If at least one converted character is the same for allN conversion candidates, convert at least one input character formingpart of the input text to the matching converted character(s) in theoutput text.

Rule 3: If the first most likely conversion candidate scoressignificantly higher than the second most likely conversion candidate,convert at least one input character to the character(s) of the firstconversion candidate.

Modeless Editing

FIGS. 5-9 illustrate an exemplary implementation of the modeless editingfeatures supported by the architecture. The user interface enables auser to seamlessly transition from input mode to edit mode without anexplicit mode switch operation. Moreover, the edit mode supportstraditional editing functions such as addition, deletion, andreplacement of language text. The present invention allows replacementof language text by inputting new phonetic text or by selection ofreplacement language text from a list of at least one replacementlanguage text candidate.

In-Place Error Correction

FIG. 5 shows a screen display 200 with various edit features. Fordiscussion purposes, assume that the user has confirmed the languagetext C₁C₂C₃C₄ previously of FIG. 4) by entering punctuation 400 and nowwishes to edit the confirmed language text C₁C₂C₃C₄. The userrepositions the cursor 204 to a desired location within the confirmedlanguage text C₁C₂C₃C₄. Cursor positioning can be accomplished in manydifferent ways, including but not limited to, arrow keys, mouse click,or verbal command. FIG. 5 illustrates the cursor 204 repositioned infront of the language character C₃ to select this character for editing.

Once the cursor 204 is positioned to the front of the language characterC₃, the user enters one or more user commands to invoke an edit windowor box 500 that is superimposed on or about the in-line area 202 at thepoint in the text containing the character(s) to be edited. The usercommand can be accomplished in any of several manners that are wellknown in the art, including but not limited to, depressing an escape key“ESC” on keyboard 112.

In the illustrated implementation, the edit window or box 500 pops upadjacent to the language character C₃ in a second direction (e.g.,vertical) orthogonal to the first direction (e.g., horizontal) of thein-line text. The pop-up edit window 500 has two parts: an input texthint window 502 and a scrollable candidate window 504. These parts arepreferably invoked simultaneously by a common user command. Thecorresponding phonetic text P₁P₂P₃ for the character C₃, which waspreviously input by a user, appears in the input text hint window 502directly above and in vertical alignment with the language character C₃being edited. Displaying the input phonetic text P₁P₂P₃ allows a user tosee what they had previously entered for the language text C₃ and toedit it if necessary. The input text hint window 502 has a scroll up bar506 disposed at the top. Activation of this scroll up bar 506 causes thephonetic text P₁P₂P₃ to slide into the sentence and replace the languagetext character C₃.

The candidate window 504 contains a scrollable list of at least onereplacement language text candidate C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d),having the same or similar phonetic text as the language text C₃. Thecandidate window 504 is arranged orthogonal to the in-line input area202 containing the language text C₁C₂C₃C₄ and directly below and invertical alignment with the language character C₃. A superscript is usedto represent different language text characters, such as C₃ ^(a), C₃^(b), C₃ ^(c), and C₃ ^(d). When there are more candidates than can bedisplayed in candidate window 504, a scroll down bar 508 is presented atthe bottom of candidate window 504. A user can select (e.g., click on)the scroll down bar 508 to view additional replacement language text.One feature of the in-place windows 502 and 504 is that the scrollingoperation can be animated to demonstrate the candidates or text movingup or down. This gives the user visual feedback that the list is beingscrolled one item at a time.

The phonetic text P₁P₂P₃ in the input text hint window 502 and thereplacement language text candidates C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d)in the candidate window 504 are additionally referenced by numbers 0, 1,2, 3, 4, as shown. The numbering method of the replacement language textand the size of the candidate window 504 can be implemented in differentways. In one implementation, the candidate window 504 has a limited sizeand lists only the top four highest probabilities of replacementlanguage text.

The language text candidates C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d) in thecandidate window 504 are preferably arranged in some order or ranking.For instance, an order may be based on a probability or likelihood thatthe candidate is actually the one intended by the user originally. Thisprobability is computed by the search engine 134, in conjunction withcandidates returned by the language model 136. If the probability of onereplacement language text in a given context is higher than theprobability of another replacement language text in the given context,the replacement language text with the higher probability is displayedcloser to the language text to be edited and with a lower referencenumber.

A user can optionally select the phonetic text P₁P₂P₃ or select one ofthe replacement language text C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d) byentering the appropriate reference number to replace the character textC₃ or through other common techniques (point and click on the selectedoption). The selected replacement is then substituted for the characterC₃ in the in-line text. Once the user elects a candidate, the pop-upedit window 500 can be configured to automatically disappear, leavingthe corrected text. Alternatively, the user may explicitly close thetext hint window 502 and the candidate window 504 using conventionalmethods, such as a mouse click outside the windows 502 and 504.

The text replacement feature implemented by in-place windows 502 and 504is referred to as the in-place error correction feature. The selectedphonetic text P₁P₂P₃ or the selected one of the replacement languagetext C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d) is displayed in-place of thelanguage text C₃ that is to be replaced. The in-place error correctionfeature allows a user to focus generally proximate a string of languagetext containing the language text to be edited.

Second Candidate List

FIG. 6 illustrates a screen display 200 similar to that shown in FIG. 5,but also showing a second candidate window 600 separate from andadjacent to the first candidate window 504. The second candidate window600 lists a larger or perhaps complete list of replacement language textthat has the same or similar phonetic text as the corresponding phonetictext P₁P₂P₃ of the character text C₃ to be edited. The phonetic textP₁P₂P₃ in the input text hint window 502 and the replacement languagetext C₃ ^(a), C₃ ^(b), C₃ ^(c), C₃ ^(d) in the candidate window 504 arealso listed in the second candidate window 600. In an alternativeembodiment, only the additional replacement candidates are listed in thesecond candidate window 600.

To open the second candidate window 600, a user enters a command, suchas a depressing a right arrow key on the keyboard while active in thecandidate window 504. The user can then select a desired replacementlanguage text by a suitable command, such as a mouse click or a keyentry. A user may move a focus 602 from text character to textcharacter.

The candidates in second candidate window 600 may also be arranged insome order, although not necessarily according to the same rankingtechnique used for the first candidate window 504. Typically sorting byprobability score, as is done with the candidates in the first candidatewindow 504, may not be as useful for the full candidate window 600because the variations between many candidates is small and somewhatmeaningless. The user may have no intuitive feel for locating aparticular candidate in this setting. Accordingly, the second candidatewindow 600 attempts to rank the candidates in some other way that allowsintuitive discovery of the desired candidate.

One metric that may be used to rank the candidates in the secondcandidate window 600, particularly in the context of the Japanese andChinese languages, is a measure the complexity of a character or symbol.For a list of Chinese text candidates, for instance, the candidates maybe listed according to the number of strokes required to form thecandidate. A stroke order imposes some tangible feel for a user who ishunting for a desired language text. The user can quickly glance to aparticular area of the window 600 that holds characters of seeminglysimilar complexity. This ranking metric is not intended to cause theuser to count or know a precise number of strokes, but only to give astrong and consistent and visually recognizable sorting order.

To close the window 600, a user enters a command such as a key entry atthe keyboard or a mouse click outside the window 600. It is appreciatedthat the control of opening/closing of windows, scrolling up/down andleft/right in windows, and scrolling up/down in windows are known in theart and are not described in detail.

In-Place Phonetic Text Correction

FIGS. 7-9 show a sequence of screen displays 200 at various instances toillustrate an in-place phonetic text correction of the phonetic textP₁P₂P₃ shown in FIG. 5. In this example, a user determines that thephonetic text P₁P₂P₃ in the input text hint window 502 is incorrect. Thecorrect phonetic text should be P₁ ^(a)P₂P₃. To correct the phonetictext, the user first selects the phonetic text P₁P₂P₃ from the inputtext hint window 502.

FIG. 7 shows that the selected phonetic text P₁P₂P₃ is displayed inplace of the text character C₃ being edited. The user can then edit thephonetic text by changing P₁ to P₁ ^(a).

FIG. 8 shows the UI after the phonetic text is changed to P₁ ^(a). Thetext hint window 502 is also updated to reflect the change. As a resultof the edit operation, at least one new replacement language text C₃^(j) having the same or similar edited phonetic text P₁ ^(a)P₂P₃ isdisplayed in the candidate window 504. The user can then select thereplacement language text (e.g. C₃ ^(j)) in the candidate window 504.

FIG. 9 shows the selected replacement text C₃ ^(j) substituted for theedited phonetic text P₁ ^(a)P₂P₃. In an alternative embodiment, theedited phonetic text can be automatically converted to the most probablenew replacement language text.

Mixed Language Entry

The language input architecture may be further configured to distinguishbetween two or more languages. The first language is detected asphonetic text and converted to language text, whereas the secondlanguage is detected as non-phonetic text and kept as is. The UI 132presents the two languages concurrently in the same line as the userenters text. The technique advantageously eliminates the need to switchbetween two input modes when inputting multi-language text. As far as auser is concerned, the user interface is modeless.

FIG. 10 illustrates the screen display 200 of the user interface anddemonstrates an integrated handling and presentation of mixed text oftwo different languages. Symbol “A” represents characters of a secondlanguage text. Second language A is a non-phonetic language wherein thesecond language text A is displayed as input by the user. As an example,the first language is Chinese Hanzi and the second language is English.It will be appreciated that the multiple languages might be any numberof different languages.

In one implementation, a user might input mixed language text, one ofwhich is phonetic text P (e.g., Pinyin) convertible to language text C(e.g., Hanzi). The phonetic text P of the character-based language isdisplayed in-line with the language text A until the phonetic text P isautomatically converted to language text C, which is displayed in-linewith the language text A of the second language. FIG. 10 illustrates theinput phonetic text P, the converted language text C, and the secondlanguage text A within the same in-line area 202.

Different fonts or colors may be used to distinguish between thephonetic text P and the non-phonetic text A. As an example, the phonetictext P is displayed in a first font or color, while the non-phonetictext A is displayed in a second font or color that is different from thefirst font or color. In addition to fonts and colors, other techniquesmay be used to visually differentiate between the phonetic text P andthe non-phonetic text A.

General UI Operation

FIGS. 11-19 illustrate methods implemented by the language inputarchitecture. The methods are implemented as part of the language inputuser interface to facilitate convenient entry and edition of phonetictext, as well as edition of converted language text. FIG. 11 illustratesthe general process, while FIGS. 12-19 illustrate certain of theoperations in more detail. The methods are described with additionalreference to the screen displays of FIGS. 2-10.

FIG. 11 shows a method 1100 for inputting text via the language inputuser interface. At operation 1102, the user interface enables a user toinput text within the common in-line area 202. In the describedimplementation, the input text is a phonetic text, such as ChinesePinyin. The input text is automatically converted to language text of acharacter-based language, such as Chinese Hanzi (operation 1104). Oneexemplary implementation of this conversion is described above withreference to FIG. 1. If the reader is interested, a more detaileddiscussion can be found in the incorporated co-pending applications Ser.No. ______, entitled “Language Input Architecture For Converting OneText Form to Another Text Form With Tolerance To Spelling,Typographical, And Conversion Errors” and Ser. No. ______, entitled“Language Input Architecture For Converting One Text Form to AnotherText Form With Modeless Entry.”

Operation 1106 determines whether a user desires to edit the languagetext following conversion, as indicated by repositioning the cursor oran express s command. If so (i.e., the “Yes” path from operation 1106),the UI receives the user's repositioning of the cursor proximal to thecharacter to be edited (operation 1108). As illustrated in FIG. 5, thecursor may be repositioned in front of the language text character.

At operation 1110, the UI opens the edit window 500 in response to auser command as shown in FIG. 5. The edit window 500 includes the firstcandidate list 504 for replacing the language text. If a suitablereplacement candidate is not presented in candidate list 504, the usermay decide to invoke the second candidate list window 600, asillustrated in FIG. 6. Operation 1112 determines whether the user hasrequested the second candidate window 600. If a suitable candidate isavailable on the first candidate list 504, and thus the user decides notto open the second candidate list window (i.e., the “no” branch fromoperation 1112), the user may select replacement language text from thefirst candidate list window to replace the language text to be edited(operation 1114).

On the other hand, if the user invokes the second candidate window(i.e., the “yes” branch from operation 1112), the UI opens the secondcandidate list window and allows the user to select replacement languagetext to replace the language text being (operation 1116). The selectedreplacement language text from either the first candidate list window504 or the second candidate list window 600 is then displayed in placeof the language text in the in-line area 202 (operation 1118). Theoperational flow continues in operation 1106.

If a user does not desire to edit text (i.e. the “no” path fromoperation 1106), the UI determines whether the user continues to inputtext, as indicated by the user repositioning the cursor and continuingto enter characters (operation 1120). If the user's actions tend tosuggest a continuation of text entry, the cursor is moved back to theinput position at the end of the current section (operation 1122) andoperational flow continues in input in-line operation 1102. If the userdoes not wish to continue, the process ends.

In-Line Input: Operations 1102 and 1104

FIG. 12 illustrates an in-line input sub-process 1200, which is anexemplary implementation of operations 1102 and 1104 of FIG. 11.Exemplary screen displays depicting this sub-process are illustrated inFIGS. 2 and 3.

At operation 1202, the UI receives an input string of phonetic text(e.g., Pinyin) from an input device (e.g., keyboard, voice recognition).The language input UI displays the phonetic text within the same in-linearea 202 as the previously converted language text (operation 1204). Thephonetic text-to-language text converter 138 converts the string ofphonetic text into language text (e.g., Hanzi) in operation 1206. Thelanguage input UI replaces the phonetic text string with the convertedlanguage text string and displays the language text in the in-line area202 (operation 1208). Sub-process 1200 then exits.

Sentence-Based Conversion: Operation 1104

FIG. 13 illustrates an automatic conversion sub-process 1300, which isanother exemplary implementation of operation 1104. Exemplary screendisplays depicting this sub-process are illustrated in FIGS. 3 and 4.

At operation 1302, the language input architecture receives a string ofphonetic text input by the user via an input device. The language inputUI displays the input phonetic text in the in-line area 202 (operation1304). At operation 1306, the language input architecture determineswhether the phonetic text belongs in the existing sentence or a newsentence. This determination can be based on whether the user hasentered some form of punctuation, such as a period or comma.

If input phonetic text belongs to a new sentence (i.e. the “new” pathfrom operation 1306), the input phonetic text is automatically convertedto language text without considering the content of previous text in theprevious sentence, if any (operation 1308). Conversely, if the inputphonetic text does not belong to a new sentence (i.e. the “existing”path from operation 1306), the phonetic text in the sentence isautomatically converted within the context of the sentence (operation1310). As part of this conversion, previously converted language textmay be further modified as additional text continues to change theintended meaning of the entire sentence. Operational flow exitsfollowing the conversion operations 1308 and 1310.

Confirmed Conversion: Operation 1104

FIG. 14 illustrates an automatic conversion sub-process 1400 in whichthe user confirms the converted language text. Sub-process 1400 isanother exemplary implementation of operation 1104.

At operation 1402, the language input architecture receives a string ofphonetic text input by the user via an input device. The language inputUI displays the input phonetic text in the in-line area 202 (operation1404). The phonetic text of the corresponding unconfirmed language textis automatically converted into language text of a character-basedlanguage (operation 1406).

At operation 1408, the language input UI determines whether the user hasconfirmed the converted language text. If not, the sub-process exits.Otherwise, if the user has confirmed the language text (i.e., the “yes”path from operation 1408), the UI confirms the converted language textand removes it from further contextual consideration as additionalphonetic text is entered (operation 1410). Operational flow then exits.

In-Place Error Correction: Operations 1108-1118

FIGS. 15-18 illustrate different implementations of an in-place errorcorrection sub-process, which is an exemplary implementation ofoperations 1108-1118 of FIG. 11. The sub-processes of FIGS. 15 and 16concern use of the first and second candidate lists to correct languagetext. The sub-processes of FIGS. 17 and 18 are directed to correctingphonetic text using the phonetic text hint window.

FIG. 15 illustrates an in-place error correction sub-process 1500 thatcorrects converted language text by offering alternative language textsin a pop-up candidate window. Exemplary screen displays depicting thissub-process 1500 are illustrated in FIG. 5.

At operation 1502, in response to the user moving the cursor proximallyto previously entered language text (e.g., in front of a character), thelanguage input UI selects or identifies the language text to be edited.The UI opens the edit window 500, including the first candidate window504 directly below the language text to be edited, to display a list ofreplacement candidates for the selected language text (operation 1504).

At operation 1506, the UI receives the user's selection of a replacementcandidate from the first candidate window 504. The language input UIdisplays the selected replacement language text candidate in place ofthe selected language text within the same in-line area 202 (operation1508). Operational flow then exits.

FIG. 16 illustrates an in-place error sub-process 1600 that correctsconverted language text by offering a complete list of alternativelanguage texts in a secondary, larger pop-up candidate window. Exemplaryscreen displays depicting this sub-process 1600 are illustrated in FIG.6.

At operation 1602, in response to the user moving the cursor proximallyto previously entered language text (e.g., in front of a character), thelanguage input UI selects or identifies the language text to be edited.The UI opens the edit window 500, including the first candidate window504 directly below the language text to be edited, to display a shortlist of replacement candidates for the selected language text (operation1604). If the user cannot find an appropriate replacement candidate, theuser may invoke a second candidate window 600 of replacement languagetext candidates (operation 1606). The second candidate list contains alarger or more complete list of replacement language text candidatesthan the first candidate window.

At operation 1608, the UI receives the user's selection of a replacementcandidate from the second candidate window 600. The language input UIdisplays the selected replacement language text candidate in place ofthe selected language text within the same in-line area 202 (operation1610). Operational flow then exits.

FIG. 17 illustrates an in-place error sub-process 1700 that corrects theconverted language text by editing the previously entered phonetic textvia a pop-up hint window. Exemplary screen displays depicting thissub-process 1700 are illustrated in FIG. 7.

At operation 1702, in response to the user moving the cursor proximallyto previously entered language text (e.g., in front of a character), thelanguage input UI selects or identifies the language text to be edited.The UI opens the edit window 500, including the phonetic text hintwindow 502 directly above the language text to be edited that displaysthe phonetic text as entered by the user (operation 1704).

Upon user selection of the phonetic text in the hint window 502 (i.e.,the “yes” path from operation 1706), the UI displays the phonetic textin place of the language text being edited (operation 1708). This allowsthe user to make corrections to the phonetic text within the in-linearea 202. Operational flow then exits.

FIG. 18 illustrates an in-place error sub-process 1800 that corrects theconverted language text by editing the previously entered phonetic textand viewing a new set of candidates following the editing. Exemplaryscreen displays depicting this sub-process 1800 are illustrated in FIGS.8 and 9.

At operation 1802, in response to the user moving the cursor proximallyto previously entered language text (e.g., in front of a character), thelanguage input UI selects or identifies the language text to be edited.The UI opens the edit window 500, including the phonetic text hintwindow 502 directly above the selected language text and the firstcandidate window 504 directly below the language text (operation 1804).

Upon user selection of the phonetic text in the hint window 502 (i.e.,the “yes” path from operation 1806), the UI displays the phonetic textin place of the language text being edited (operation 1808). The UIreceives and displays the user's edits of the phonetic text in thein-line edit area 202 (operations 1810). In response to the editing, theUI displays a new list of replacement language text candidates in thefirst candidate window 504 (operation 1812). The user may further invokethe second candidate window 600 if desired.

At operation 1814, the UI receives the user's selection of a replacementcandidate from the new list in the first candidate window 504. Thelanguage input UI displays the selected replacement language textcandidate in place of the selected language text within the same in-linearea 202 (operation 1816). Operational flow then exits.

Multi-Language Entry

FIG. 19 illustrates a multi-language entry sub-process 1900 in which twoor more different languages are entered using the in-line input UI.Exemplary screen displays depicting this sub-process 1900 areillustrated in FIG. 10.

At operation 1902, the language input architecture receives a string ofmixed phonetic and non-phonetic text input by the user via an inputdevice. The language input UI displays the mixed text within the samein-line area 202 as the previously converted language text (operation1904).

At operation 1906, the language input architecture determines whetherthe input text is phonetic text (e.g., Pinyin) as opposed tonon-phonetic text (e.g., English). If the input text is phonetic text(i.e., the “yes” path from operation 1906), the language inputarchitecture converts the phonetic text to language text (operation1908). The UI displays the language text in place of the enteredphonetic text and in-line with the previous text (operation 1910). Onthe other hand, if the input text is non-phonetic text (i.e., the “no”path from operation 1906), the language input architecture does notconvert it and the UI displays the non-phonetic text in-line with theprevious text (operation 1912). Operational flow then exits.

Exemplars Chinese-Based Implementation

FIGS. 20-26 illustrate an exemplary implementation of the language inputarchitecture and UI in the context of the Chinese language. In thiscontext, the phonetic text is Chinese Pinyin and the language text isChinese Hanzi characters.

FIG. 20 illustrates one implementation of a Chinese input user interfaceshowing an example of the in-line input feature. Table 2000 contains twostrings of Pinyin text 2002 and 2004 input by the user and correspondingconverted Hanzi text 2006 and 2008 as it would appear in the in-lineinput area. An exemplary display screen 2010 is shown below table 2000and contains the converted Hanzi text 2008. Notice that the Pinyin textbeing input at a cursor bar 2012 is displayed in-line with the convertedChinese text. The other characteristics shown in the display screen 2010are known in the word processing art.

FIG. 21 illustrates a Chinese UI screen 2100 in which converted Hanzitext is presently displayed in the in-line entry area 2102. The user hasmoved the cursor to select Chinese character text 2104 for editing andinvoked the pop-up edit window 2106, consisting of a Pinyin text hintwindow 2108 and a first Hanzi text candidate window 2110. The Pinyintext 2112 associated with the selected Chinese character text 2104 isdisplayed in a Pinyin text hint window 2108.

FIG. 22 illustrates one implementation of a Chinese input user interfaceshowing an example of the in-place error correction feature. Table 2200depicts two user actions in the left column—an action 2202 to open theedit window containing a phonetic hint and a candidate list and anaction 2204 to select an item “1” from the candidate list. In responseto the user actions in the left column, the right column of table 2200illustrates corresponding exemplary screen shots 2206 and 2208.

With respect to screen shot 2206, the user selects Chinese charactertext 2210 for editing by moving the cursor in front of the charactertext 2210. The user inputs a command to open an edit window containing aPinyin text hint window 2212 and a first candidate list window 2214.Next, the user selects item “1” from the candidate list 2214 and thefirst candidate 2216 associated with item “1” is substituted for theoriginal selected text 2210. Notice also that the candidates in the list2208 are updated (i.e., scrolled upward one place) to reflect that theselected candidate 2216 is moved into the in-line entry area. Theupdating may be animated to visually illustrate that the selectedcandidate 2216 is moved into the in-line area.

FIG. 23 illustrates another implementation of a Chinese input userinterface to illustrate in-place correction of the Pinyin text. The leftcolumn in table 2300 contains a series of five user actions 2302-2310and the right column shows corresponding exemplary screen shots2312-2320 resulting from the user actions. When a user decides to editthe character text, the user moves the cursor to the front of thecharacter text to be edited (action 2302). Suppose the user selectsChinese character text 2330 to be edited (UI screen shot 2312). Aftermoving cursor in front of the character text 2330, the user inputs acommand (e.g., pressing the “ESC” key) to invoke the edit window (action2304). As a result, a Pinyin text hint window 2332 and a first candidatelist window 2334 are opened as shown in the UI screen shot 2314.

Next, the user enters “0” (action 2306) to select the Pinyin text 2336in the Pinyin text hint window 2332. The selected Pinyin text 2336 issubstituted for the selected character text 2330 as shown in the UIscreen shot 2316. At this point, the user is free to edit the originalPinyin text.

Suppose the user adds an additional apostrophe in the Pinyin text 2336(action 2308) to produce text 2336′ as shown UI screen shot 2318. Theedited Pinyin text 2336′ is shown both in the in-line area as well asthe Pinyin text hint window 2332. Following the editing, the firstcandidate window 2334 is updated with a new list of character textcandidates. In this example, a new character text candidate 2338corresponding to the edited Pinyin text 2336′ is displayed in the firstcandidate list window 2334.

Finally, the user selects the desired character text 2338 in the firstcandidate list window 2334, for example, by entering “1” (action 2310).As a result, the selected character text 2338 is displayed in place ofthe edited Pinyin text 2336′, as illustrated in UI screen shot 2320. Inthis manner, the new character text 2338 is effectively substituted forthe original language text 2330.

FIG. 24 illustrates another implementation of a Chinese input userinterface to illustrate entry of mixed languages, such as Chinese andEnglish. The left column in table 2400 contains a series of two useractions 2402 and 2404 and the right column shows corresponding exemplaryscreen shots 2406 and 2408 resulting from the user actions.

Suppose the user inputs mixed Pinyin text 2410 and English text 2412 asindicated by action 2402. The user can enter the mixed text into thelanguage input UI without shifting modes between Chinese entry andEnglish entry. That is, the user simply enters the Pinyin text andEnglish text in the same line without stopping. The Pinyin text 2410 isconverted into Chinese text 2414 and displayed within the same in-linearea, as illustrated in UI screen shot 2406. The English text 2412 isnot converted by the language input architecture, but is displayed asentered.

Subsequently, the user inputs mixed Pinyin text 2416, English text 2418,and Pinyin text 2420 without shifting modes (action 2404). The Pinyintext 2416 and 2420 are converted into Chinese text 2422 and 2424,respectively, as shown in UI screen shot 2408. The English text 2418remains unchanged and is displayed in-line with the converted Chinesetext.

According to one implementation, the phonetic and non-phonetic text maybe displayed differently to differentiate between them. For example,compare the mixed text in table 2000 of FIG. 20 and table 2400 of FIG.24. The Pinyin text (e.g., 2012 in FIG. 20) is displayed in a narrow,bold font, whereas the English text (e.g., 2412 or 2418 in FIG. 24) isdisplayed in a thin, courier-type font.

FIG. 25 illustrates another implementation of a Chinese input userinterface to illustrate the first and second candidate lists forin-place editing. The left column in table 2500 contains a series of twouser actions 2502 and 2504 and the right column shows correspondingexemplary screen shots 2506 and 2508 resulting from the user actions.

At action 2502, the user selects a Chinese text to be edited and inputsa command to open the Pinyin text hint window 2510 and a first charactertext candidate list 2512. The windows 2510 and 2512 appear above andbelow the in-line entry area, respectively, as illustrated in UI screenshot 2506.

Next, at action 2504, the user inputs a command to open a secondcharacter text candidate list. A second character text candidate listwindow 2514 is popped open next to the first candidate list 2512, asillustrated in UI screen shot 2508. The user may then select a charactertext candidate from the second character text candidate list window2514.

FIG. 26 illustrates another implementation of a Chinese input userinterface to illustrate sentence-based automatic conversion withconfirmed character text. The left column in table 2600 contains aseries of five user actions 2602-2610 and the right column showscorresponding exemplary screen shots 2612-2620 resulting from the useractions.

At action 2602, the user inputs Pinyin text 2622 and 2624. The Pinyintext 2622 is automatically converted into character text 2626 and Pinyintext 2624 remains unconverted until further user input, as illustratedby UI screen shot 2612. At action 2604, the user subsequently inputsPinyin text 2628. The previously converted character text 2626 is nowautomatically converted into different Chinese character text 2630 as aresult of changing context introduced by the addition of Pinyin text2628. This modification of the converted character text is illustratedin UI screen shot 2614. Pinyin text 2624 and 2628 remain unconverted atthis point, and continue to be illustrated in-line with the modifiedlanguage text.

Next, at action 2606, the user inputs a confirmation command (e.g.,pressing the space bar) to confirm the just converted character text2630. Meanwhile, the Pinyin text 2624 and 2628 are automaticallyconverted into Chinese text 2632 and 2634, respectively, based on thecontext in the sentence so far. This is illustrated in screen shot 2616.

Subsequently, at action 2608, the user enters additional Pinyin text(not shown) in the same sentence and the Pinyin text is converted intocharacter text 2636, as illustrated in UI screen shot 2618. Notice thatthe confirmed character text 2630 is not changed by subsequent entry ofthe Pinyin text.

For the comparison purposes, suppose the character text 2630 is notconfirmed by user action 2606 (e.g., the user does not press the spacebar). Instead, the user enters the additional Pinyin text withoutconfirmation of character text 2630. In this case, the character text2626 remains unchanged and is not modified to text 2630, as illustratedby UI screen shot 2620. This is because the automatic conversion fromPinyin text to character text is sentence-based and character text 2626is part of the sentence. As long as the sentence is active (i.e., nopunctuation has ended the sentence or no new sentence has yet beenstarted), the previously converted character text in the currentsentence is subject to further modification unless the user confirms theconverted character text.

Conclusion

Although the description above uses language that is specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the invention.

1. A method comprising: receiving input text entered by a user;converting the input text to an output text; and displaying the inputtext and the output text within a common entry line.
 2. A method asrecited in claim 1, wherein the input text comprises a phonetic text andthe output text comprises a character-based language text.
 3. A methodas recited in claim 1, wherein the input text comprises Chinese Pinyinand the output text comprises Chinese Hanzi.
 4. A method as recited inclaim 1, wherein the displaying comprises displaying the input text andthe output text together within a common horizontal line.
 5. A method asrecited in claim 1, wherein the displaying comprises depicting theoutput text in place of the input text from which the output text wasconverted.
 6. A method as recited in claim 1, further comprisingmodifying the output text as additional input text is entered.
 7. Amethod as recited in claim 6, further comprising ceasing to furthermodify the output text as additional input text is entered in responseto user entry of punctuation.
 8. A method as recited in claim 6, furthercomprising ceasing to further modify the output text as additional inputtext is entered in response to user confirmation of the output text. 9.A method as recited in claim 6, further comprising ceasing, in responseto user confirmation of the output text, to modify the output text whileleaving unconverted input text active for modification.
 10. A method asrecited in claim 1, further comprising selectively modifying the outputtext as additional input text is entered such that no modification ismade if such modification results in only a minor improvement.
 11. Amethod as recited in claim 1, further comprising enabling a user to editthe output text within the common entry line without switching from anentry mode to an edit mode.
 12. A method as recited in claim 1, furthercomprising, in response to user selection of output text for editing,depicting an edit window adjacent to the selected output text in theentry line.
 13. A method as recited in claim 12, wherein the entry lineis oriented in a first direction and further comprising orienting theedit window in a second direction orthogonal to the first direction. 14.A method as recited in claim 1, further comprising, in response to userselection of output text for editing, depicting an input text hintwindow adjacent to the selected output text in the entry line, the inputtext hint window containing the input text from which the selectedoutput text was converted.
 15. A method as recited in claim 1, furthercomprising, in response to user selection of output text for editing,depicting a first candidate list adjacent to the selected output text inthe entry line, the first candidate list containing one or morealternate output text candidates that may be substituted for theselected output text.
 16. A method as recited in claim 15, furthercomprising ordering the output text candidates within the firstcandidate list according to a ranking.
 17. A method as recited in claim15, wherein the first candidate list is scrollable, and furthercomprising animating movement of the output text candidates as the listis scrolled.
 18. A method as recited in claim 15, further comprisingdepicting a second candidate list containing a complete set of outputtext candidates than the first candidate list.
 19. A method as recitedin claim 18, further comprising arranging the output text candidates inthe second candidate list according to complexity of characterconstruction.
 20. A method as recited in claim 18, further comprising:ordering the output text candidates in the first candidate listaccording to a first metric; and arranging the output text candidates inthe second candidate list according to a second metric different thanthe first metric.
 21. A method as recited in claim 1, wherein the entryline is oriented in a first direction, and further comprising, inresponse to user selection of output text for editing: depicting aninput text hint window above the selected output text in a seconddirection orthogonal to the first direction, the input text hint windowcontaining the input text from which the selected output text wasconverted; and depicting a first candidate window below the selectedoutput text in the second direction, the first candidate windowcontaining one or more alternate output text candidates that may besubstituted for the selected output text.
 22. A method as recited inclaim 1, wherein the input text comprises phonetic and non-phonetictext, further comprising: converting the phonetic text to language text;and displaying the language text, the non-phonetic text, and newlyentered phonetic text within the common entry line.
 23. A method asrecited in claim 1, further comprising enabling a user to enter inputtext containing at least two languages without switching from a firstentry mode for a first language and a second entry mode for a secondlanguage.
 24. A method as recited in claim 1, wherein the input textcomprises individual input characters, further comprising converting atleast one of the input characters to the output text when at least oneinput character is displayed and at most six input characters aredisplayed.
 25. A method as recited in claim 1, wherein the input textcomprises individual input characters, further comprising: evaluating atleast two conversion candidates for matching characters; and if at leastone character from both conversion candidates match, converting at leastone input character to the matching character.
 26. A method as recitedin claim 1, wherein the input text comprises individual inputcharacters, further comprising always displaying a most recently enteredinput character.
 27. A method as recited in claim 1, wherein the inputtext comprises individual input characters, further comprisingconverting at least one input character to the output text of a firstmost likely conversion candidate if the first most likely conversioncandidate scores significantly higher than a second most likelyconversion candidate.
 28. One or more computer-readable media havingcomputer-executable instructions that, when executed on a processor,direct a computer to perform the method as recited in claim
 1. 29. Amethod comprising: displaying phonetic text as a user enters thephonetic text; and displaying language text upon conversion from thephonetic text, the language text being presented in place of thephonetic text from which the language text is converted so that thelanguage text and any unconverted phonetic text are displayed together.30. A method as recited in claim 29, wherein the phonetic text comprisesa Chinese Pinyin and the language text comprises a Chinese Hanzi.
 31. Amethod as recited in claim 29, further comprising displaying theunconverted phonetic text and the language text together within a commonhorizontal line.
 32. A method as recited in claim 29, further comprisingmodifying the language text as additional phonetic text is entered. 33.A method as recited in claim 32, further comprising ceasing to furthermodify the language text as additional phonetic text is entered inresponse to user entry of punctuation.
 34. A method as recited in claim32, further comprising ceasing to further modify the language text asadditional phonetic text is entered in response to user confirmation ofthe language text.
 35. A method as recited in claim 32, furthercomprising ceasing, in response to user confirmation of the languagetext, to modify the language text while leaving unconverted phonetictext active for modification.
 36. A method as recited in claim 29,further comprising modifying the language text to second language textas additional phonetic text is entered if the second language text issignificantly more likely to have been intended.
 37. A method as recitedin claim 29, further comprising enabling a user to edit the languagetext without switching from an entry mode to an edit mode.
 38. A methodas recited in claim 29, further comprising, in response to userselection of language text for editing, displaying an edit windowadjacent to the selected language text.
 39. A method as recited in claim29, further comprising, in response to user selection of language textfor editing: displaying a phonetic text hint proximal to the selectedlanguage text, the phonetic text hint containing the phonetic text fromwhich the selected language text was converted; and displaying areduced-set candidate list proximal to the selected language text, thecandidate list containing a reduced set of one or more alternatelanguage text candidates that may be substituted for the selectedlanguage text.
 40. A method as recited in claim 39, further comprisingordering the language text candidates within the candidate listaccording to a ranking.
 41. A method as recited in claim 39, wherein thecandidate list is scrollable, and further comprising animating movementof the language text candidates as the list is scrolled.
 42. A method asrecited in claim 39, further comprising displaying a full-set candidatelist containing a complete set of language text candidates than thereduced-set candidate list.
 43. A method as recited in claim 42, furthercomprising arranging the language text candidates in the full-setcandidate list according to complexity of character construction.
 44. Amethod as recited in claim 42, further comprising: ordering the languagetext candidates in the reduced-set candidate list according to a firstmetric; and arranging the language text candidates in the full-setcandidate list according to a second metric different than the firstmetric.
 45. A method as recited in claim 29, wherein the phonetic textcomprises individual characters, further comprising converting at leastone of the phonetic characters to the language text when at least onephonetic character is displayed and at most six phonetic characters aredisplayed.
 46. One or more computer-readable media havingcomputer-executable instructions that, when executed on a processor,direct a computer to perform the method as recited in claim
 29. 47. Amethod comprising: presenting a user interface to receive phonetic textand non-phonetic text entered by a user; converting the phonetic text toa language text; and displaying together the language text, thenon-phonetic text, and unconverted phonetic text.
 48. A method asrecited in claim 47, further comprising displaying the language text,the non-phonetic text, and the unconverted phonetic text in-line withina common horizontal line.
 49. A method as recited in claim 47, furthercomprising displaying the non-phonetic text differently than theunconverted phonetic text so that the non-phonetic text appearsdifferently than the unconverted phonetic text.
 50. A method as recitedin claim 47, further comprising displaying the non-phonetic text in afirst font and the unconverted phonetic text in a second font differentfrom the first font.
 51. A method as recited in claim 47, furthercomprising displaying the non-phonetic text in a first color and theunconverted phonetic text in a second color different from the firstcolor.
 52. One or more computer-readable media havingcomputer-executable instructions that, when executed on a processor,direct a computer to perform the method as recited in claim 47.